Chrome 137

Tanggal rilis stabil: 27 Mei 2025

Kecuali jika dinyatakan lain, perubahan berikut berlaku untuk rilis saluran stabil Chrome 137 untuk Android, ChromeOS, Linux, macOS, dan Windows.

CSS dan UI

Fungsi if() CSS

Fungsi if() CSS memberikan cara ringkas untuk mengekspresikan nilai bersyarat. Fungsi ini menerima serangkaian pasangan nilai kondisi, yang dibatasi dengan titik koma. Fungsi ini mengevaluasi setiap kondisi secara berurutan dan menampilkan nilai yang terkait dengan kondisi pertama yang benar. Jika tidak ada kondisi yang bernilai benar, fungsi akan menampilkan streaming token kosong. Hal ini memungkinkan Anda mengekspresikan logika kondisional yang kompleks dengan cara yang sederhana dan ringkas.

Contoh:

div {
  color: var(--color);
  background-color: if(style(--color: white): black; else: white);
}

.dark {
  --color: black;
}

.light {
  --color: white;
}
<div class="dark">dark</div>
<div class="light">light</div>

Melacak bug #346977961 | Entri ChromeStatus.com | Spesifikasi

Properti reading-flow, reading-order CSS

Properti CSS reading-flow mengontrol urutan elemen dalam tata letak flex, grid, atau blok yang ditampilkan ke alat aksesibilitas dan difokuskan menggunakan navigasi fokus keyboard tab.

Properti CSS reading-order memungkinkan penulis mengganti urutan secara manual dalam penampung alur membaca. Ini adalah bilangan bulat dengan nilai default 0.

Pelajari properti ini lebih lanjut di Menggunakan alur pembacaan CSS untuk navigasi fokus berurutan yang logis, dan coba beberapa contoh.

Melacak bug #40932006 | Entri ChromeStatus.com | Spesifikasi

Mengabaikan spasi huruf dalam skrip kursif

Fitur ini menambahkan logika untuk mengabaikan setelan spasi huruf untuk skrip kursif seperti yang ditentukan oleh developer, sesuai dengan spesifikasi, untuk memastikan bahwa spasi huruf tidak mengganggu struktur kata dan bertujuan untuk menghasilkan pengalaman pengguna yang lebih baik bagi pengguna yang mengandalkan skrip kursif.

Dengan fitur ini, Chrome memastikan bahwa skrip kursif akan dapat dibaca dan memiliki spasi yang tepat, meskipun font tidak memiliki fitur tipografi lanjutan.

Skrip yang berlaku di Chromium adalah Arab, Hanifi Rohingya, Mandaic, Mongolia, N'Ko, Phags Pa, dan Syriac karena skrip ini dianggap kursif sesuai spesifikasi.

Melacak bug #40618336 | Entri ChromeStatus.com | Spesifikasi

Selection API getComposedRanges dan direction

Fitur ini mengirimkan dua metode API baru untuk Selection API:

  • Selection.direction yang menampilkan arah pilihan sebagai none, forward, atau backward
  • Selection.getComposedRanges() yang menampilkan daftar 0 atau 1 komponen StaticRange

StaticRange yang disusun diizinkan untuk melintasi batas bayangan, yang tidak dapat dilakukan oleh Range normal.

Contoh:

const range = getSelection().getComposedRanges({ shadowRoots: [root] });

Jika pilihan melintasi batas root bayangan yang tidak diberikan dalam daftar shadowRoots, endpoint StaticRange akan diperluas cakupannya agar berada di luar hierarki tersebut. Hal ini memastikan Chrome tidak mengekspos hierarki bayangan yang tidak dikenal.

Melacak bug #40286116 | Entri ChromeStatus.com | Spesifikasi

Dukung offset-path: shape()

Mendukung offset-path: shape(), untuk memungkinkan penggunaan bentuk responsif guna menetapkan jalur animasi.

Melacak bug #389713717 | Entri ChromeStatus.com | Spesifikasi

Mendukung atribut transform di SVGSVGElement

Fitur ini memungkinkan penerapan properti transformasi—seperti penskalaan, rotasi, translasi, dan kemiringan—langsung ke elemen root <svg> menggunakan atribut transform-nya. Peningkatan ini memungkinkan Anda memanipulasi seluruh sistem koordinat SVG atau kontennya secara keseluruhan, sehingga memberikan fleksibilitas yang lebih besar dalam membuat grafik vektor yang dinamis, responsif, dan interaktif. Dengan mendukung atribut ini, elemen <svg> dapat diubah tanpa memerlukan elemen wrapper tambahan atau solusi CSS yang kompleks, sehingga menyederhanakan proses mem-build grafik web yang skalabel dan animasi.

Melacak bug #40313130 | Entri ChromeStatus.com | Spesifikasi

Warna aksen sistem untuk properti accent-color

Tindakan ini memungkinkan Anda menggunakan warna aksen sistem operasi untuk elemen formulir. Dengan menggunakan properti CSS accent-color, Anda dapat memastikan bahwa elemen formulir seperti kotak centang, tombol pilihan, dan status progres secara otomatis mengadopsi warna aksen yang ditentukan oleh sistem operasi pengguna. Fitur ini telah didukung di macOS sejak 2021, dan kini didukung di Windows dan ChromeOS.

Melacak bug #40764875 | Entri ChromeStatus.com | Spesifikasi

Mengizinkan <use> mereferensikan elemen root dokumen eksternal dengan menghapus fragmen.

Fitur ini menyederhanakan elemen <use> SVG dengan melonggarkan persyaratan referensi. Sebelum Chrome 137, Anda harus mereferensikan fragmen secara eksplisit dalam dokumen SVG. Jika tidak ada ID fragmen yang diberikan, <use> tidak akan dapat me-resolve target dan tidak ada yang akan dirender atau dirujuk.

Misalnya: elemen <use> yang mereferensikan file eksternal dengan ID fragmen:

<svg>
  <use xlink:href="myshape.svg#icon"></use>
</svg>

Dalam contoh ini, #icon adalah ID fragmen yang mengarah ke elemen dengan id="icon" dalam myshape.svg.

Tanpa ID fragmen:

<svg>
  <use xlink:href="myshape.svg"></use>
</svg>

Dengan fitur ini, menghilangkan fragmen atau hanya memberikan nama file svg eksternal akan otomatis mereferensikan elemen root, sehingga Anda tidak perlu mengubah dokumen yang direferensikan hanya untuk menetapkan ID ke root. Peningkatan ini menyederhanakan proses pengeditan manual ini dan meningkatkan efisiensi.

Melacak bug #40362369 | Entri ChromeStatus.com | Spesifikasi

Jenis warna floating point kanvas

Memperkenalkan kemampuan untuk menggunakan format piksel floating point (bukan titik tetap 8-bit) dengan CanvasRenderingContext2D, OffscreenCanvasRenderingContext2D, dan ImageData.

Hal ini diperlukan untuk aplikasi presisi tinggi (misalnya, visualisasi medis), konten rentang dinamis tinggi, dan ruang warna kerja linear.

Melacak bug #40245602 | Entri ChromeStatus.com | Spesifikasi

view-transition-name: match-element

Nilai match-element menghasilkan ID unik berdasarkan identitas elemen dan mengganti namanya untuk elemen ini. Ini digunakan dalam kasus Aplikasi Web Satu Halaman saat elemen dipindahkan dan Anda ingin menganimasikannya dengan transisi tampilan.

Melacak bug #365997248 | Entri ChromeStatus.com | Spesifikasi

Pembayaran

Menyesuaikan jenis error yang ditampilkan untuk pembuatan kredensial WebAuthn payment: SecurityError menjadi NotAllowedError

Memperbaiki jenis error yang ditampilkan selama pembuatan kredensial WebAuthn untuk kredensial payment. Karena ketidakcocokan spesifikasi historis, membuat kredensial payment di iframe lintas origin tanpa aktivasi pengguna akan menampilkan SecurityError, bukan NotAllowedError, yang ditampilkan untuk kredensial non-pembayaran.

Ini adalah perubahan yang dapat menyebabkan gangguan, meskipun bersifat khusus. Kode yang sebelumnya mendeteksi jenis error yang ditampilkan (misalnya, e instanceof SecurityError) akan terpengaruh. Kode yang umumnya menangani error selama pembuatan kredensial (misalnya, catch (e)) akan terus berfungsi dengan benar.

Melacak bug #41484826 | Entri ChromeStatus.com | Spesifikasi

Web API

Partisi URL Blob: Pengambilan/Navigasi

Untuk melanjutkan Partisi Penyimpanan, Chrome telah menerapkan partisi akses URL Blob menurut Kunci Penyimpanan (situs tingkat teratas, origin frame, dan boolean has-cross-site-ancestor), kecuali navigasi tingkat teratas yang akan tetap dipartisi hanya menurut origin frame. Perilaku ini mirip dengan perilaku yang diterapkan oleh Firefox dan Safari saat ini, serta menyelaraskan penggunaan URL Blob dengan skema partisi yang digunakan API penyimpanan lain sebagai bagian dari Partisi Penyimpanan. Selain itu, Chrome kini menerapkan noopener pada navigasi tingkat atas yang dimulai perender ke URL Blob yang situs tujuannya bersilangan dengan situs tingkat atas yang melakukan navigasi. Hal ini menyelaraskan Chrome dengan perilaku serupa di Safari, dan spesifikasi yang relevan telah diperbarui untuk mencerminkan perubahan ini.

Melacak bug #40057646 | Entri ChromeStatus.com

Stack panggilan dalam laporan error dari halaman web yang tidak responsif

Fitur ini merekam stack panggilan JavaScript saat halaman web menjadi tidak responsif karena kode JavaScript menjalankan loop tanpa batas atau komputasi yang sangat lama lainnya. Hal ini membantu developer mengidentifikasi penyebab tidak responsifnya aplikasi dan memperbaikinya dengan lebih mudah. Stack panggilan JavaScript disertakan dalam API pelaporan error jika alasannya tidak responsif.

Melacak bug #1445539 | Entri ChromeStatus.com | Spesifikasi

Document-Isolation-Policy

Document-Isolation-Policy memungkinkan dokumen mengaktifkan crossOriginIsolation untuk dirinya sendiri, tanpa harus men-deploy COOP atau COEP, dan apa pun status crossOriginIsolation halaman. Kebijakan ini didukung oleh isolasi proses. Selain itu, subresource lintas asal non-CORS dokumen akan dimuat tanpa kredensial atau harus memiliki header CORP.

Melacak bug #333029146 | Entri ChromeStatus.com | Spesifikasi

Ed25519 dalam kriptografi web

Fitur ini menambahkan dukungan untuk algoritma Curve25519 di Web Cryptography API, yaitu algoritma tanda tangan Ed25519

Melacak bug #1370697 | Entri ChromeStatus.com | Spesifikasi

Pencegahan pelacakan HSTS

Memitigasi pelacakan pengguna oleh pihak ketiga yang menggunakan cache HSTS.

Fitur ini hanya mengizinkan upgrade HSTS untuk navigasi tingkat teratas dan memblokir upgrade HSTS untuk permintaan sub-resource. Tindakan ini membuat situs pihak ketiga tidak dapat menggunakan cache HSTS untuk melacak pengguna di seluruh web.

Melacak bug #40725781 | Entri ChromeStatus.com

WebAssembly

Integrasi promise JavaScript

JavaScript Promise Integration (JSPI) adalah API yang memungkinkan aplikasi WebAssembly terintegrasi dengan JavaScript Promise.

Hal ini memungkinkan program WebAssembly bertindak sebagai generator Promise, dan memungkinkan program WebAssembly berinteraksi dengan API yang berisi Promise.

Secara khusus, saat aplikasi menggunakan JSPI untuk memanggil API (JavaScript) yang membawa Promise, kode WebAssembly akan ditangguhkan; dan pemanggil asli ke program WebAssembly diberi Promise yang akan dipenuhi saat program WebAssembly akhirnya selesai.

Entri ChromeStatus.com | Spesifikasi

Petunjuk Cabang WebAssembly

Meningkatkan performa kode WebAssembly yang dikompilasi dengan memberi tahu mesin bahwa petunjuk cabang tertentu sangat mungkin mengambil jalur tertentu.

Hal ini memungkinkan mesin membuat keputusan yang lebih baik untuk tata letak kode (meningkatkan hit cache petunjuk) dan alokasi register.

Entri ChromeStatus.com | Spesifikasi

WebGPU

GPUTextureView untuk binding externalTexture

GPUTextureView kini diizinkan untuk digunakan untuk binding externalTexture saat membuat GPUBindGroup.

Melacak bug #398752857 | Entri ChromeStatus.com | Spesifikasi

Overload copyBufferToBuffer

Metode GPUCommandEncoder copyBufferToBuffer() kini menyertakan cara yang lebih sederhana untuk menyalin seluruh buffering menggunakan overload baru dengan parameter offset dan ukuran opsional.

Entri ChromeStatus.com | Spesifikasi

Enterprise

Logging dan pelaporan alamat IP

Chrome Enterprise meningkatkan kemampuan pemantauan keamanan dan respons insiden dengan mengumpulkan dan melaporkan alamat IP lokal dan jarak jauh serta mengirim alamat IP tersebut ke Log Investigasi Keamanan (SIT). Selain itu, Chrome Enterprise juga memungkinkan admin mengirim alamat IP ini ke penyedia SIEM pihak pertama dan pihak ketiga melalui konektor Pelaporan Chrome Enterprise.

Fitur ini tersedia untuk pelanggan Chrome Enterprise Core.

Entri ChromeStatus.com

Uji coba origin

Atribut pemblokiran rendering kecepatan frame penuh

Menambahkan token pemblokiran render baru full-frame-rate ke atribut pemblokiran. Jika perender diblokir dengan token full-frame-rate, perender akan berfungsi pada kecepatan frame yang lebih rendah untuk mencadangkan lebih banyak resource untuk pemuatan.

Melacak bug #397832388 | Entri ChromeStatus.com

Menjeda pemutaran media pada iframe yang tidak dirender

Menambahkan kebijakan izin media-playback-while-not-rendered untuk mengizinkan situs penyematan menjeda pemutaran media iframe tersemat yang tidak dirender—yaitu, memiliki properti display yang disetel ke none. Hal ini akan memungkinkan developer membuat pengalaman yang lebih mudah digunakan dan juga meningkatkan performa dengan membiarkan browser menangani pemutaran konten yang tidak terlihat oleh pengguna.

Uji Coba Origin | Melacak bug #351354996 | Entri ChromeStatus.com

Rewriter API

Rewriter API mengubah dan menyusun ulang teks input dengan cara yang diminta, yang didukung oleh model bahasa AI di perangkat. Developer dapat menggunakan API ini untuk menghapus redundansi dalam teks agar sesuai dengan batas kata, menyusun ulang pesan agar sesuai dengan audiens yang dituju atau menjadi lebih konstruktif jika pesan ditemukan menggunakan bahasa negatif, menyusun ulang postingan atau artikel untuk menggunakan kata dan konsep yang lebih sederhana, dan banyak lagi.

Uji Coba Origin | Melacak bug #358214322 | Entri ChromeStatus.com | Spesifikasi

Writer API

Writer API dapat digunakan untuk menulis materi baru berdasarkan perintah tugas menulis, yang didukung oleh model bahasa AI di perangkat. Developer akan dapat menggunakan API ini untuk membuat penjelasan tekstual tentang data terstruktur, menulis postingan tentang produk berdasarkan ulasan atau deskripsi produk, memperluas daftar pro dan kontra menjadi tampilan lengkap, dan lainnya.

Uji Coba Origin | Melacak bug #357967382 | Entri ChromeStatus.com | Spesifikasi